package com.gshrms.statistics.mapper;

import com.gshrms.statistics.domain.params.StatisticsStaffParams;
import com.gshrms.statistics.domain.vo.StatisticsForSceneNumVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.HashMap;
import java.util.List;
@Mapper
public interface StatisticsStaffMapper {

    /**
     * 在职员工司龄分布
     *
     * @param params 筛选项
     * @return 统计结果列表
     */
    public HashMap<String, Object> statisticsJoinAge(StatisticsStaffParams params);

    /**
     * 在职员工工龄分布
     *
     * @param params 筛选项
     * @return 统计结果列表
     */
    public HashMap<String, Object> statisticsWorkAge(StatisticsStaffParams params);

    /**
     * 在职员工年龄分布
     *
     * @param params 筛选项
     * @return 统计结果列表
     */
    public HashMap<String, Object> statisticsAge(StatisticsStaffParams params);

    /**
     * 在职员工学历分布
     *
     * @param params 筛选项
     * @return 统计结果列表
     */
    public HashMap<String, Object> statisticsEducation(StatisticsStaffParams params);

    /**
     * 在职员工性别分布
     *
     * @param params 筛选项
     * @return 统计结果列表
     */
    public HashMap<String, Object> statisticsGender(StatisticsStaffParams params);

    /**
     * 在职员工性质分布
     *
     * @param params 筛选项
     * @return 统计结果列表
     */
    public HashMap<String, Object> statisticsStaffStatus(StatisticsStaffParams params);

    /**
     * 在职员工婚姻情况分布
     *
     * @param params 筛选项
     * @return 统计结果列表
     */
    public HashMap<String, Object> statisticsMaritalStatus(StatisticsStaffParams params);

    /**
     * 在职员工政治面貌分布
     *
     * @param params 筛选项
     * @return 统计结果列表
     */
    public HashMap<String, Object> statisticsPoliticalOutlook(StatisticsStaffParams params);

    /**
     * 部门人数统计
     *
     * @param params 筛选项
     * @return 统计结果列表
     */
    public List<StatisticsForSceneNumVo> statisticsOrgPeople(StatisticsStaffParams params);

    /**
     * 职位人数top10统计
     *
     * @param params 筛选项
     * @return 统计结果列表
     */
    public List<StatisticsForSceneNumVo> statisticsPostPeopleTop10(StatisticsStaffParams params);

    /**
     * 月度入转离人数分布
     *
     * @param params 筛选项
     * @return 统计结果列表
     */
    public List<HashMap<String, Object>> statisticsChangeByMonth(StatisticsStaffParams params);

    /**
     * 年度入转离人数分布
     *
     * @param params 筛选项
     * @return 统计结果列表
     */
    public List<HashMap<String, Object>> statisticsChangeByYear(StatisticsStaffParams params);

}
